<?php
class ModelDelimanPhieuphanphoi extends Model 
{
	public function getList($where = "")
	{
		$query = $this->db->query("Select `dlm_phieuphanphoi`.* from dlm_phieuphanphoi  where trangthai <> 'deleted' ".$where);
		return $query->rows;
	}
	
	public function getItem($phieuphanphoiid)
	{
		$query = $this->db->query("Select * from `dlm_phieuphanphoi` where phieuphanphoiid = '".$phieuphanphoiid."'");
		return $query->row;
	}
	
	private function createMaPhieu($prefix)
	{
		//return $this->db->getNextIdVarChar("ben_thuchi","sophieu",$prefix);	
		
		$mun = $this->db->getNextIdVarCharNumber("dlm_phieuphanphoi","maphieuphanphoi",$prefix);
		return $this->string->numberToString($mun,3).$prefix;
	}
	
	public function insert($data)
	{
		if($data['prefix'] == "")
			$maphieuphanphoi=$this->db->escape(@$data['maphieuphanphoi']);
		else
			$maphieuphanphoi=$this->createMaPhieu($data['prefix']);
		
		$kybaoid=$this->db->escape(@$data['kybaoid']);
		$sokybao=$this->db->escape(@$data['sokybao']);
		$tenkybao=$this->db->escape(@$data['tenkybao']);
		$loaibaoid=$this->db->escape(@$data['loaibaoid']);		
		$tenloaibao=$this->db->escape(@$data['tenloaibao']);
		$ngayphathanh=$this->db->escape(@$data['ngayphathanh']);
		
		$nhanvienlapid=$this->user->getNhanVien('nhanvienid');
		$masonhanvienlap = $this->user->getNhanVien('masonhanvien');
		$tennhanvienlap=$this->user->getNhanVien('hoten');
		
		$ngaylap=$this->date->getToday();
		$chitieu=$this->db->escape(@$this->string->toNumber($data['chitieu']));
		$ghichu=$this->db->escape(@$data['ghichu']);
				
		$field=array(
						
						'maphieuphanphoi',					
						'kybaoid',
						'sokybao',
						'tenkybao',
						'loaibaoid',						
						'tenloaibao',
						'ngayphathanh',
						'nhanvienlapid',
						'masonhanvienlap',
						'tennhanvienlap',
						'ngaylap',
						'chitieu',
						'ghichu'
					);
		$value=array(
						
						$maphieuphanphoi,					
						$kybaoid,
						$sokybao,
						$tenkybao,
						$loaibaoid,						
						$tenloaibao,
						$ngayphathanh,
						$nhanvienlapid,
						$masonhanvienlap,
						$tennhanvienlap,
						$ngaylap,
						$chitieu,
						$ghichu
					);
		$this->db->insertData("dlm_phieuphanphoi",$field,$value);
		$getLastId = $this->db->getLastId();
		
		//nhthoai: cập nhật
		//Ghi nhật ký hệ thống: bắt đầu
		$nkht = array(
							'ngaythaotac'=>$this->date->getToday(),
							'chucnang'=>"Lập kế hoạch phân phối báo",
							'hanhdong'=>"Thêm mới phiếu",
							'csdl'=>"dlm_phieuphanphoi[".$getLastId."]",
							'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
							'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
							'tennhanvien'=>$this->user->getNhanVien('hoten'),
							'truongdulieu'=>"phieuphanphoiid",
							'dulieucu'=>"",
							'dulieumoi'=>$getLastId
							);
		$this->load->model('deliman/nhatkyhethong');
		$this->model_deliman_nhatkyhethong->insert($nkht);
		//Ghi nhật ký hệ thống: kết thúc
		
		return $getLastId;
	}
	
	public function update($data)
	{
		$phieuphanphoi=array();
		$phieuphanphoi['phieuphanphoiid']=$this->db->escape(@$data['phieuphanphoiid']);
		$phieuphanphoi['maphieuphanphoi']=$this->db->escape(@$data['maphieuphanphoi']);		
		$phieuphanphoi['kybaoid']=$this->db->escape(@$data['kybaoid']);
		$phieuphanphoi['sokybao']=$this->db->escape(@$data['sokybao']);
		$phieuphanphoi['tenkybao']=$this->db->escape(@$data['tenkybao']);
		$phieuphanphoi['loaibaoid']=$this->db->escape(@$data['loaibaoid']);		
		$phieuphanphoi['tenloaibao']=$this->db->escape(@$data['tenloaibao']);
		$phieuphanphoi['ngayphathanh']=$this->db->escape(@$data['ngayphathanh']);
		$phieuphanphoi['nhanvienlapid']=$this->db->escape(@$data['nhanvienlapid']);
		$phieuphanphoi['masonhanvienlap']=$this->db->escape(@$data['masonhanvienlap']);
		$phieuphanphoi['tennhanvienlap']=$this->db->escape(@$data['tennhanvienlap']);
		//$ngaylap=$this->db->escape(@$data['ngaylap']);
		$phieuphanphoi['chitieu'] = $this->string->toNumber($data['chitieu']);
		$phieuphanphoi['ghichu']=$this->db->escape(@$data['ghichu']);
				
		$field=array(
						
						//'maphieuphanphoi',					
						'kybaoid',
						'sokybao',
						'tenkybao',
						'loaibaoid',						
						'tenloaibao',
						'ngayphathanh',
						//'nhanvienlapid',
						//'masonhanvienlap',
						//'tennhanvienlap',
						//'ngaylap',
						'chitieu',
						'ghichu'
					);
		$value=array(
						
						//$phieuphanphoi['maphieuphanphoi'],					
						$phieuphanphoi['kybaoid'],
						$phieuphanphoi['sokybao'],
						$phieuphanphoi['tenkybao'],
						$phieuphanphoi['loaibaoid'],						
						$phieuphanphoi['tenloaibao'],
						$phieuphanphoi['ngayphathanh'],
						//$phieuphanphoi['nhanvienlapid'],
						//$phieuphanphoi['masonhanvienlap'],
						//$phieuphanphoi['tennhanvienlap'],
						//$phieuphanphoi['ngaylap'],
						$phieuphanphoi['chitieu'],
						$phieuphanphoi['ghichu']
					);
					
		//nhthoai: cập nhật
		//Ghi nhật ký hệ thống: bắt đầu
		$nkht_1 = array(
							'ngaythaotac'=>$this->date->getToday(),
							'chucnang'=>"Lập kế hoạch phân phối báo",
							'hanhdong'=>"Sửa thông tin phiếu",
							'csdl'=>"dlm_phieuphanphoi[".$phieuphanphoi['phieuphanphoiid']."]",
							'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
							'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
							'tennhanvien'=>$this->user->getNhanVien('hoten')
							);
		$phieuphanphoi_cu = $this->getItem($phieuphanphoi['phieuphanphoiid']);
		foreach($phieuphanphoi as $key=>$dulieumoi)
		{	
			if(trim($key) == trim("ngayphathanh"))
			{
				$dulieumoi = $this->date->formatMySQLDate($dulieumoi);
				$phieuphanphoi_cu[$key] = $this->date->formatMySQLDate($phieuphanphoi_cu[$key]);						 
			}
			if(trim($phieuphanphoi_cu[$key]) != trim($dulieumoi))
			{
				$nkht = array();
				$nkht_2 = array(
								'truongdulieu'=>"'".$key."'",
								'dulieucu'=>"'".$phieuphanphoi_cu[$key]."'",
								'dulieumoi'=>"'".$dulieumoi."'",
								);
				$nkht = array_merge($nkht_1, $nkht_2);
				$this->load->model('deliman/nhatkyhethong');
				$this->model_deliman_nhatkyhethong->insert($nkht);	
			}
		}
		//Ghi nhật ký hệ thống: kết thúc	
					
		$where="phieuphanphoiid = '".$phieuphanphoi['phieuphanphoiid']."'";
		$this->db->updateData("dlm_phieuphanphoi",$field,$value,$where);
	}	
			
	public function delete($phieuphanphoiid)
	{
		$phieuphanphoiid=$this->db->escape(@$phieuphanphoiid);
		//$where="phieuphanphoiid = '".$phieuphanphoiid."'";
		//$this->db->deleteData('dlm_phieuphanphoi',$where);
		$field=array(
						
						'trangthai'
					);
		$value=array(
						
						'deleted'
					);
					
		//nhthoai: cập nhật
		//Ghi nhật ký hệ thống: bắt đầu
		$nkht = array(
							  'ngaythaotac'=>$this->date->getToday(),
							  'chucnang'=>"Lập kế hoạch phân phối báo",
							  'hanhdong'=>"Xóa phiếu phân phối và chi tiết phiếu phân phối",
							  'csdl'=>"dlm_phieuphanphoi[".$phieuphanphoiid."]",
							  'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
							  'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
							  'tennhanvien'=>$this->user->getNhanVien('hoten'),
							  'truongdulieu'=>"trangthai",
							  'dulieucu'=>"",
							  'dulieumoi'=>"deleted"
					  );
		$this->load->model('deliman/nhatkyhethong');
		$this->model_deliman_nhatkyhethong->insert($nkht);
		//Ghi nhật ký hệ thống: kết thúc
		
		$where="phieuphanphoiid = '".$phieuphanphoiid."'";
		$this->db->updateData("dlm_phieuphanphoi",$field,$value,$where);
		$this->db->updateData("dlm_chitietphieuphanphoi",$field,$value,$where);
		
	}
	
	public function deletes($data)
	{
		foreach($data as $phieuphanphoiid)
		{
			$this->delete($phieuphanphoiid);
		}		
	}
	
	//chi tiet phieu phan phoi
	
	public function getChiTietPhieuPhanPhoi($id)
	{
		$sql = "Select * 
						from `dlm_chitietphieuphanphoi` 
						where id ='".$id."'";
		$query = $this->db->query($sql);
		return $query->row;	
	}
	
	public function getChiTietPhieuPhanPhoiList($where)
	{
		$sql = "Select `dlm_chitietphieuphanphoi`.* 
									from `dlm_chitietphieuphanphoi` 
									where trangthai <> 'deleted' " . $where ;
		
		$query = $this->db->query($sql);
		return $query->rows;
	}
	
	public function saveChiTietPhieuPhanPhoi($data)
	{
		$id=(int)@$data['id'];
		$phieuphanphoiid=$this->db->escape(@$data['phieuphanphoiid']);
		$loaibaoid=$this->db->escape(@$data['loaibaoid']);
		$kybaoid=$this->db->escape(@$data['kybaoid']);
		$khuvucid=$this->db->escape(@$data['khuvucid']);
		$tenkhuvuc=$this->db->escape(@$data['tenkhuvuc']);
		$qlkhuvucid=$this->db->escape(@$data['qlkhuvucid']);
		$masoqlkhuvuc=$this->db->escape(@$data['masoqlkhuvuc']);
		$tenqlkhuvuc=$this->db->escape(@$data['tenqlkhuvuc']);
		$chitieu=$this->db->escape(@$this->string->toNumber($data['chitieu']));
		$ngayphanphoi=$this->date->getToday();
		$ngayphathanh = $this->db->escape(@$data['ngayphathanh']);
		
		
		$field=array(
						'phieuphanphoiid',
						'loaibaoid',
						'kybaoid',
						'khuvucid',
						'tenkhuvuc',
						'qlkhuvucid',
						'masoqlkhuvuc',
						'tenqlkhuvuc',
						'chitieu',
						'ngayphanphoi',
						'ngayphathanh'
					);
		$value=array(
						$phieuphanphoiid,
						$loaibaoid,
						$kybaoid,
						$khuvucid,
						$tenkhuvuc,
						$qlkhuvucid,
						$masoqlkhuvuc,
						$tenqlkhuvuc,
						$chitieu,
						$ngayphanphoi,
						$ngayphathanh
					);
					
		if($id==0)
		{			
			$this->db->insertData("dlm_chitietphieuphanphoi",$field,$value);
			$id = $this->db->getLastId();
			
			//nhthoai: cập nhật
			//Ghi nhật ký hệ thống: bắt đầu
			$nkht = array(
								  'ngaythaotac'=>$this->date->getToday(),
								  'chucnang'=>"Lập kế hoạch phân phối báo",
								  'hanhdong'=>"Thêm chi tiết phiếu phân phối",
								  'csdl'=>"dlm_chitietphieuphanphoi[".$id."]",
								  'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
								  'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
								  'tennhanvien'=>$this->user->getNhanVien('hoten'),
								  'truongdulieu'=>"id",
								  'dulieucu'=>"",
								  'dulieumoi'=>$id
						  );
			$this->load->model('deliman/nhatkyhethong');
			$this->model_deliman_nhatkyhethong->insert($nkht);
			//Ghi nhật ký hệ thống: kết thúc
		}
		else
		{
			//nhthoai: cập nhật
			//Ghi nhật ký hệ thống: bắt đầu
			$ctppp = $this->getChiTietPhieuPhanPhoi($id);
			if($ctppp['chitieu'] != $chitieu)
			{
				$nkht = array(
									  'ngaythaotac'=>$this->date->getToday(),
									  'chucnang'=>"Lập kế hoạch phân phối báo",
									  'hanhdong'=>"Sửa chi tiết phiếu phân phối",
									  'csdl'=>"dlm_chitietphieuphanphoi[".$id."]",
									  'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
									  'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
									  'tennhanvien'=>$this->user->getNhanVien('hoten'),
									  'truongdulieu'=>"chitieu",
									  'dulieucu'=>$ctppp['chitieu'],
									  'dulieumoi'=>$chitieu
							  );
				$this->load->model('deliman/nhatkyhethong');
				$this->model_deliman_nhatkyhethong->insert($nkht);
			}
			//Ghi nhật ký hệ thống: kết thúc
			
			$where="id = '".$id."'";
			$this->db->updateData('dlm_chitietphieuphanphoi',$field,$value,$where);
		}
		return $id;
	}
	
	public function updateChiTietPhieuPhanPhoi($id,$col,$val)
	{
		$id = $this->db->escape(@$id);
		$col=$this->db->escape(@$col);
		$val=$this->db->escape(@$val);
		
		$field=array(
						$col
						
					);
		$value=array(
						$val
					);
		
		$where="id = '".$id."'";
		$this->db->updateData('dlm_chitietphieuphanphoi',$field,$value,$where);
	}
	
	public function deleteChiTietPhieuPhanPhoi($id)
	{
		$id = $this->db->escape(@$id);
		$where="id = '".$id."'";
		$this->db->deleteData('dlm_chitietphieuphanphoi',$where);
		
	}
	
	
	public function getSoBaoDuocPhanPhoiList($where)
	{
		$sql = "SELECT loaibaoid,kybaoid ,sum(chitieu) tongchitieu 
				FROM `db_deliman`.`dlm_chitietphieuphanphoi`
				where 1=1 ".$where."
				Group by kybaoid";
		$query = $this->db->query($sql);
		return $query->rows;
	}
}

?>